The present invention relates to software development. More particularly, and not by way of limitation, the present invention is directed to a system and method for “Agile” software development based on principles of iterative development, where self-organized cross-functional teams elaborate requirements and solutions through collaboration.
Adopting ‘Agile’ software development methods and systems to the needs of very large-scale (greater than 100 designers) software projects has many challenges. Agile software development refers to a group of software development methodologies based on iterative development, where requirements and solutions evolve through collaboration between self-organizing cross-functional teams. Some components of agile software development become extremely hard to realize when implementing in large scale parallel development on a common code base. Components such as: collaboration; self-organizing teams; and clear priorities (work on most important business items first) can have problems such as technical dependencies in the software or testing that often translate to dependencies between teams, which limit the possibilities of the teams to independently plan the work over time and business priorities get blurred due to timing constraints that teams set between each other.
Currently available Agile business supporting solutions/applications address the tracking and planning needs of agile teams. However, with many teams working in parallel, these applications have very limited possibilities of allowing the teams to identify and manage their dependencies to other teams. This is a serious impediment that can hinder many large software development projects and organizations to successfully implement Agile software design.
It would be advantageous to have a system and method for improving or eliminating the above described impediments to overcome the disadvantages of the prior art. The present invention provides such a system and method.